/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mrp.persistencia.entity;

import java.io.Serializable;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author root
 */
@Entity
@Table(name = "agregado")
//@NamedQueries({
//    @NamedQuery(name = "Agregado.findAll", query = "SELECT a FROM Agregado a"),
//    @NamedQuery(name = "Agregado.findByCodmateriaprima", query = "SELECT a FROM Agregado a WHERE a.codmateriaprima = :codmateriaprima"),
//    @NamedQuery(name = "Agregado.findByNombremateriaprima", query = "SELECT a FROM Agregado a WHERE a.nombremateriaprima = :nombremateriaprima")})
@PrimaryKeyJoinColumn(name="codmateriaprima")
public class Agregado extends Materiaprima implements Serializable {
    
    private static final long serialVersionUID = 1L;
//    @Id
//    @Basic(optional = false)
//    @NotNull
//    @Size(min = 1, max = 2147483647)
//    @Column(name = "codmateriaprima")
//    private String codmateriaprima;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2147483647)
    @Column(name = "nombremateriaprima")
    private String nombremateriaprima;
//    @JoinColumn(name = "codmateriaprima", referencedColumnName = "codmateriaprima", insertable = false, updatable = false)
//    @OneToOne(optional = false)
//    private Materiaprima materiaprima;
    @OneToOne(mappedBy = "agregadoFk")
    private Inventario inventario;

    public Agregado() {
    }

    public Agregado(String codmateriaprima) {
//        this.codmateriaprima = codmateriaprima;
    }

    public Agregado(String codmateriaprima, String nombremateriaprima) {
//        this.codmateriaprima = codmateriaprima;
        this.nombremateriaprima = nombremateriaprima;
    }

//    public String getCodmateriaprima() {
//        return codmateriaprima;
//    }
//
//    public void setCodmateriaprima(String codmateriaprima) {
//        this.codmateriaprima = codmateriaprima;
//    }

    public String getNombremateriaprima() {
        return nombremateriaprima;
    }

    public void setNombremateriaprima(String nombremateriaprima) {
        this.nombremateriaprima = nombremateriaprima;
    }

//    public Materiaprima getMateriaprima() {
//        return materiaprima;
//    }
//
//    public void setMateriaprima(Materiaprima materiaprima) {
//        this.materiaprima = materiaprima;
//    }
 
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (getCodmateriaprima() != null ? getCodmateriaprima().hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Agregado)) {
            return false;
        }
        Agregado other = (Agregado) object;
        if ((this.getCodmateriaprima() == null && other.getCodmateriaprima() != null) || (this.getCodmateriaprima() != null && !this.getCodmateriaprima().equals(other.getCodmateriaprima()))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "mrp.persistencia.entity.Agregado[ codmateriaprima=" + getCodmateriaprima() + " ]";
    }

    public Inventario getInventario() {
        return inventario;
    }

    public void setInventario(Inventario inventario) {
        this.inventario = inventario;
    }
    
}
